In [ ]:
import pandas as pd
import numpy as np
import plotly.express as px
data= pd.read_csv("spotify-2023.csv")
data['streams'] = pd.to_numeric(data['streams'], errors='coerce')
In [ ]:
most_streamed = data.loc[data.groupby('released_year')['streams'].idxmax()]
clean_data = most_streamed[['track_name', 'artist(s)_name', 'released_year', 'streams']]
fig = px.bar(clean_data, x='released_year', y='streams')
fig.show(renderer='notebook')
In [ ]:
most_streamed = data.loc[data.groupby('released_year')['streams'].idxmax()]
clean_data = most_streamed[['track_name', 'artist(s)_name', 'released_year', 'streams']]
clean_data = clean_data.query("""released_year >= 2010""")
fig = px.bar(clean_data, x='released_year', y='streams', hover_data=['track_name','artist(s)_name'], color_continuous_scale="Thermal", color="streams", title='Top 3 Streamed Songs by Year')
fig.show(renderer='notebook')
In [ ]:
song_keys = data[["released_year","key","streams"]]
song_keys["count"] = song_keys.apply(lambda x:1, axis=1)
group = song_keys.groupby('key')['streams'].sum().reset_index()
def to_millions(x):
return x / 1e6
group["value_to_millions"] = group["streams"].apply(to_millions)
fig = px.pie(group, values="value_to_millions", names="key",title="key Share in songs")
fig.show(renderer='notebook')
labels = ['Category A', 'Category B', 'Category C']
values = [40, 20, 10]
C:\Users\Looper\AppData\Local\Temp\ipykernel_8564\2408432014.py:2: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
In [ ]:
top_songs = data.groupby ('released_year'). apply(lambda group: group.nlargest(3, 'streams')).reset_index(drop=True)
top_songs = top_songs[['track_name', 'artist(s)_name', 'released_year', 'streams']]
top_songs = top_songs.query("""released_year >= 2010""")
fig = px.bar(top_songs, x='released_year', y='streams', hover_data=['track_name' , 'artist(s)_name'] , color_continuous_scale="earth", color="streams" , title='Top 3 streamed songs by year ')
fig.show(renderer='notebook')
In [ ]:
In [ ]: